perm filename MRV.DOC[1,BGB] blob sn#001249 filedate 1972-08-28 generic text, type T, neo UTF8
00100	                        ROBOT VEHICLE VISION
00200	
00300	                            Cart Project
00400	             Stanford Artificial Intelligence Laboratory

00500	
00600	                              Baumgart

00700	
00800	
00900	
01000	                              ABSTRACT

01100	
01200		Still lacking a working robot that  can  move  and  see;  the
01300	means,  goals, data, programming and hardware of the Cart Project are
01400	described as an approach to mobile robot vision.
01500	
01600	
01700	
01800	                             (ABSTRACT)
01900	
02000		(The  capabities,  data,  programming  and  hardware   of   a
02100	terrestrial robot that can move and see are described.)
02200	
02300	
02400	
02500	CONTENTS
02600			GOALS.
02700	
02800			DATA.
02900				1. TV images.
03000				2. Features 2D.
03100				3. Blobs 2d.
03200				4. Features 3D.
03300				5. Bodies 3D.
03400				6. Elevation Map.
03500				7. Cart Course Map.
03600	
03700			PROGRAMMING.
03800				1. Cart Running.
03900				2. Image Analysis.
04000				3. Locus Solving.
04100				4. World Modeling.
04200				5. Image Synthesis.
04300	
04400			HARDWARE.
     

00100	                              THE GOAL.
00200	
00300		The goal of the Cart Project is to get a computer  controlled
00400	cart  to  see  by  means  of  a TV camera so that it can drive around
00500	outside the laboratory.
00600	
     

00100	                          THE GROUND RULES.
00200	
00300		First,  the robot must operate in the Real World.  Reality of
00400	course is subjective, good robot work can  be  done  in  a  simulated
00500	world  or in a synthetic world; however it is part of the goal of the
00600	Cart Project to deal with the world of roadways, parking lots, grassy
00700	hills,  eucalyptus  trees,  sun,  sky,  dirt and horse manure that is
00800	found outside of our laboratory.
00900	
01000		Second, the robot is allowed to have a map. In fact the map is
01100	not  merely  an  incidental  thing  that  is  or  is not in the glove
01200	compartment, but is essential to robot vision.   The  map  or  "world
01300	model" is the robot's internal concept of the world it sees.
01400	
01500		Manual initialization of the world model is allowed. Although
01600	a sophisticated robot should be able to automatically acquire a world
01700	model  or map as it goes along, the mere representation of the map in
01800	a computer is of such  difficult  that  I  have  had  to  settle  for
01900	manually  constructing  a  world model.  Programmers should always be
02000	warned by the old proverb: You can't automate  a  process  you  don't
02100	know nothun' about.
02200	
02300		A line following automaton is not a solution. A line follower
02400	can readily be made with a couple of photocells and  although  it  is
02500	harder  to do it with a computer and a TV camera it has been done and
02600	didn't readily lend itself to generality.
02700	
     

00100		Dead Reckoning should be minimal.      Dead  Reckoning  is  a
00200	non-visual  means  of knowing where the camera is at.   To the extent
00300	that a robot dead  reckons,  to  that  extent  is  its  visual  organ
00400	irrelevant  to  navigation.     In  the  limit a robot with a precise
00500	locomotion system and an accurate map could drive around blindly.
00600	
00700		Non-Visual  aides  to navigation aren't kosher.   The cart is
00800	more a statement of a visual perception problem than it is a computer
00900	control  cart. At present the cart has no inertial guidance, feelers,
01000	speedometer, odometer or compass and  I  am  reluctant  to  add  them
01100	because  they  are non visual aides to naviagtion.   However, I would
01200	like to have non visual  means  of  measuring  the  position  of  the
01300	wheels,  pan,  tilt,  target  voltage and f-stop of the camera; which
01400	indicates that I do not strictly  follow  the  no  non  visual  aides
01500	ground rule.
01600	
01700		The world can be assumed to be essentially static. Namely the
01800	only  things  that  move are the cart and the sun.    Well now if the
01900	robot can't deal with a static world then it won't have a chance in a
02000	dynamic  one  -  or  -  a dynamic world can be sucessfully modeled by
02100	using a large number of static worlds which differ slightly.
     

00100	                               SYSTEMS
00200	
00300		The Cart's system problem is that the code and data for  cart
00400	vision and control is larger than core.  I have tried multi-jobbing,
00500	shared segments, overlays, ptys, mail, user interrupts,  and peeking.
00600	I conclude that building sophisticated sub systems does not
00700	lead directly to clear and powerful vision software. What  I  now  am
00800	doing  is  writing  a  set of programs which have three steps: Input,
00900	Compute, and Output.
01000	
01100		Accordingly, the Cart Running Sequence  is  merely  a  serial
01200	loop  of  program  runs with no parallel processing and all inter job
01300	communication is done via the disk file system.
     

00100	PROCESSING SEQUENCES.
00200	
00300		For  our  first  solution,  the  cart will operate in a LOOK,
00400	THINK, MOVE loop.
00500	
00600		First it LOOKS, it  takes  a  TV  picture.  Then  it
00700	THINKS, it predicts what is in the picture then verifies that what it
00800	anticipated is there, and if it finds what it wants  it  measures  it
00900	and  deduces where the picture was taken from and how far off that is
01000	from where the cart wants to be.  And then  it  MOVES,  the  steering
01100	wheels  are  moved  a  certain amount if necessary and then the drive
01200	motors are activated to move the cart blindly along its way from  one
01300	to twnety feet.
01400	
01500	A. Model Making Sequence.
01600		Ad Hoc Programming.
01700		Manual Commands.
01800		Image Analysis - computer assisted.
01900	
02000	B. Cart Running Sequence.
02100	
02200		Initialization		Tell the cart where it is.
02300	
02400		INPUT			Take a television picture.
02500		Prediction		Elements of the image are anticipated.
02600		Analysis		Image elements are sought in the new image.
02700		Verification
02800		Measurement		Compute the locus of the camera.
02900		Course Calculation
03000		OUTPUT			Move the cart.
     

00100	Photometry
00200	
00300		Sure its important to find  the  edges  and  T-joints  in  an
00400	image,  however  knowing why a particular point in a particular image
00500	is as bright as it is, is equally important, and can solve  the  same
00600	sorts of problems and hasn't received enough attention.
00700	
00800		Basically my solution to the cart's problem is to model it to
00900	death.  Namely enter into the computer everything  that  an  advanced
01000	exploratory robot might be able to report back AFTER it has gone over
01100	an area. Then I imagine that our primitive cart robot  has  the  duty
01200	merely to check on the earlier exploration and verify and update it.
01300	
01400		The highest cognitive level of the cart software is a moral
01500	imperative to trace along a predetermined course.